<?php
if(!defined('BASE_DIR'))die('Cannot access the file !');
/**
 * -+-----------------------------------------
 * |PHP Framework
 * |Copyright (c) 2010 jinke.[iblue.cc]
 * |E-mail: mejinke@gmail.com
 * |Date:  2010-03-08
 * -+-----------------------------------------
 *
 * session 会话基本管理类
 * @author jinke
 */
class  Session extends Base
{

	public  $session = array();

	//会话名称前缀
	private $session_ext ='';

	/**
	 * 构造函数 启动会话
	 */
	public function __construct()
	{
		$this->session_ext = strtolower(Config::get('session_ext'));
		if (!isset($_SESSION))
		{
			if(Functions::GET('sess_id'))
				session_id(Functions::GET('sess_id'));
			session_start();
		}
		Debug::initClass('Session.class.php');
	}


	/**
	 * 添加一个会话变量 不会覆盖原有的值
	 * @param string $key	session 名称
	 * @param mixed  $value   session 值
	 */
	public function add($key,$value)
	{
		$key = strtolower($key);
		if (!isset($_SESSION[$this->session_ext.$key]))
		{
			$_SESSION[$this->session_ext.$key] = $value;
			$this->session[$this->session_ext.$key] = $value;
		}
	}


	/**
	 * 设置一个会话变量，始终覆盖原有的值
	 * @param string $key	Session 名称
	 * @param mixed  $value   Session 值
	 */
	public function set($key,$value)
	{
		$key = strtolower($key);
		$_SESSION[$this->session_ext.$key] = $value;
		$this->session[$this->session_ext.$key] = $value;
	}


	/**
	 * 获取一个会话值
	 * @param string $key Session 名称
	 * @return mixed
	 */
	public function get($key)
	{
		$key = strtolower($key);
		if (isset($_SESSION[$this->session_ext.$key]))
			return $_SESSION[$this->session_ext.$key];
		else
			return false;
	}


	/**
	 * 删除指定的SESSION会话
	 * @param string $key Session 名称
	 * @return mixed
	 */
	public function del($key)
	{
		$key = strtolower($key);
		if (isset($_SESSION[$this->session_ext.$key]))
			unset($_SESSION[$this->session_ext.$key]);
		else
			return false;
	}


	/**
	 * 删除所有SESSION会话
	 */
	public function delAll()
	{
		session_unset();
		$this->session=array();
	}

}
?>